/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.data.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author thiago
 */
@Entity
@Table(name = "listaprecos")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Listaprecos.findAll", query = "SELECT l FROM Listaprecos l"),
    @NamedQuery(name = "Listaprecos.findByCodigoforn", query = "SELECT l FROM Listaprecos l WHERE l.listaprecosPK.codigoforn = :codigoforn"),
    @NamedQuery(name = "Listaprecos.findByCodigolist", query = "SELECT l FROM Listaprecos l WHERE l.listaprecosPK.codigolist = :codigolist"),
    @NamedQuery(name = "Listaprecos.findByCodigocli", query = "SELECT l FROM Listaprecos l WHERE l.listaprecosPK.codigocli = :codigocli"),
    @NamedQuery(name = "Listaprecos.findByCodigoprod", query = "SELECT l FROM Listaprecos l WHERE l.listaprecosPK.codigoprod = :codigoprod"),
    @NamedQuery(name = "Listaprecos.findByDatalancamento", query = "SELECT l FROM Listaprecos l WHERE l.datalancamento = :datalancamento"),
    @NamedQuery(name = "Listaprecos.findByValorunitario", query = "SELECT l FROM Listaprecos l WHERE l.valorunitario = :valorunitario"),
    @NamedQuery(name = "Listaprecos.findByValortotalproduto", query = "SELECT l FROM Listaprecos l WHERE l.valortotalproduto = :valortotalproduto")})
public class Listaprecos implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ListaprecosPK listaprecosPK;
    @Column(name = "datalancamento")
    @Temporal(TemporalType.DATE)
    private Date datalancamento;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "valorunitario")
    private Double valorunitario;
    @Column(name = "valortotalproduto")
    private Double valortotalproduto;
    @JoinColumns({
        @JoinColumn(name = "codigolist", referencedColumnName = "codigolist", insertable = false, updatable = false),
        @JoinColumn(name = "codigocli", referencedColumnName = "codigocli", insertable = false, updatable = false),
        @JoinColumn(name = "codigoprod", referencedColumnName = "codigoprod", insertable = false, updatable = false)})
    @ManyToOne(optional = false)
    private Listaprodutos listaprodutos;
    @JoinColumn(name = "codigoforn", referencedColumnName = "codigoforn", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Fornecedores fornecedores;

    public Listaprecos() {
    }

    public Listaprecos(ListaprecosPK listaprecosPK) {
        this.listaprecosPK = listaprecosPK;
    }

    public Listaprecos(int codigoforn, int codigolist, int codigocli, int codigoprod) {
        this.listaprecosPK = new ListaprecosPK(codigoforn, codigolist, codigocli, codigoprod);
    }

    public ListaprecosPK getListaprecosPK() {
        return listaprecosPK;
    }

    public void setListaprecosPK(ListaprecosPK listaprecosPK) {
        this.listaprecosPK = listaprecosPK;
    }

    public Date getDatalancamento() {
        return datalancamento;
    }

    public String getStringDataLancamento(){
        return new br.util.utilitarios().converteData(datalancamento);
    }

    public void setDatalancamento(Date datalancamento) {
        this.datalancamento = datalancamento;
    }

    public Double getValorunitario() {
        return valorunitario;
    }

    public void setValorunitario(Double valorunitario) {
        this.valorunitario = valorunitario;
    }

    public Double getValortotalproduto() {
        return valortotalproduto;
    }

    public void setValortotalproduto(Double valortotalproduto) {
        this.valortotalproduto = valortotalproduto;
    }

    public Listaprodutos getListaprodutos() {
        return listaprodutos;
    }

    public void setListaprodutos(Listaprodutos listaprodutos) {
        this.listaprodutos = listaprodutos;
    }

    public Fornecedores getFornecedores() {
        return fornecedores;
    }

    public void setFornecedores(Fornecedores fornecedores) {
        this.fornecedores = fornecedores;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (listaprecosPK != null ? listaprecosPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Listaprecos)) {
            return false;
        }
        Listaprecos other = (Listaprecos) object;
        if ((this.listaprecosPK == null && other.listaprecosPK != null) || (this.listaprecosPK != null && !this.listaprecosPK.equals(other.listaprecosPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.data.model.Listaprecos[ listaprecosPK=" + listaprecosPK + " ]";
    }
    
}
